ijkplayer的编译
先下载
git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-android
1 |
|
编译完成后的android/ijkplayer就是一个android工程,可以直接拷贝出来运行,在android/ijkplayer目录下的ijkplayer-armv7a,ijkplayer-arm64等文件夹下的src/main/libs下生成libijkffmpeg.so libijkplayer.so libijksdl.so三个库
ijkplayer 添加支持rtsp rtmp
ijkplayer默认时不支持rtsp的,需要开启配置后重新编译库。
1 | cd ijkplayer-android |
1 | 添加 |
保存后,执行以下命令
1 | rm module.sh |
然后再重新编译
1 | ./compile-ffmpeg.sh clean |
编译ijkplayer
1 | ./compile-ijk.sh clean |
编译完成后将android项目下最新的库拷贝到之前打开的ijkpalyer项目中即可
ijkplayer rtsp 的优化
通过测试发现之前编译的库打开rtsp时延时较大大概在13s左右,可以在ijkpalyer项目的依赖项目ijkplayer-java中,找到IikVideoView.java 文件,在createPlayer方法中添加以下配置
1 | /*以下时针对rtsp流的延时优化*/ |
经过优化后可以在1~3内打开rtsp和rtmp连接
rtsp rtmp的测试
测试可以将地址加在SampleMediaListFragment中进行测试
测试的rtsp地址
rtsp://184.72.239.149/vod/mp4://BigBuckBunny_175k.mov
测试的rtmp地址 ,没有找到合适的流 所以可以在本地通过nginx-rtmp-module搭建了推送流和点播服务
rtmp://192.168.2.233/live/stream (直播流)
rtmp://192.168.2.233:1935/vod/test2.mp4 (点播)
从测试的效果来看 ijkplayer播放的效果还算比较理想
添加https支持
1 | cd ijkplayer-android |
编译 openssl
1 | cd android/contrib |
编译ffmpeg
./compile-ffmpeg.sh clean
./compile-ffmpeg.sh all
编译 ijkplayer
./compil-ijk.sh all
编译完成后替换项目中的so库